Θα μπορούσες να κάνεις τα εξής.
1) Kάνεις Login σαν admin στο Instance του SQL Server που σε ενδιαφέρει να μπει κάποια στιγμή ο χρήστης και να βλέπει μόνο μια βάση.
2) Να φτιάξεις ένα SQL Server login (line 1)
3) Να φτιάξεις την βάση που θέλεις να έχει ο χρήστης μόνο read δικαιώματα (αν το έχεις κάνει ήδη , οκ)
4) Να φτιάξεις ένα Database user πάνω στο login αυτό (line 7)
5) Στην γραμμή 7 δημιουργώ τον database user πάνω στο login
6) Στην γραμμή 10 απλά βλέπω (και για να σου δείξω) ποιοι είναι οι database fixed roles.
7) Στην γραμμή 12 απλά βλέπω ποια δικαιώματα/permissions του συγκεκριμένου fixed database role
8) Στην γραμμή 14 προσθέτω τον user "thereaderuser" στον fixed database ρόλο "
db_datareader"
9) Στην γραμμή 16 δημιουργώ ένα πίνακα στην βάση και στις 24,25 εισάγω κάποια δεδομένα (αυτά τα έχω κάνει για να τεστάρω ότι δουλεύει σωστά)
10) Αποσυνδέσου από το Instance σαν admin και κάνε Login σαν "thereaderuser".
11) θα μπορείς να εκτελέσεις την εντολή Select στην 27 γραμμή αλλά τίποτα στις γραμμές 29,30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| CREATE LOGIN thereaderuser WITH PASSWORD ='P@$$w0rd'
CREATE DATABASE thereaderuserDB
USE thereaderuserDB
CREATE USER thereaderuser FOR LOGIN thereaderuser;
GO
exec sp_helpdbfixedrole
sp_dbfixedrolepermission 'db_datareader'
sp_addrolemember 'db_datareader','thereaderuser'
CREATE TABLE customer
(ID INT PRIMARY KEY,
First_Name varchar(50) ,
Last_Name varchar(50),
Address varchar(50),
City varchar(50),
Country varchar(25))
INSERT INTO customer VALUES (1, 'nik', 'kkk','abc street','london','uk')
INSERT INTO customer VALUES (2, 'bb', 'rrr','ardf street','london','uk')
SELECT * FROM customer
DROP TABLE customer
DELETE customer |
Νικόλαος Καντζέλης
BSc, MSc, MCAS, MCPD, MCITP, MCTS,MCP, MCT